// File generated from our OpenAPI spec
namespace Stripe
{
    using Newtonsoft.Json;

    public class ChargePaymentMethodDetailsCardPresentReceipt : StripeEntity<ChargePaymentMethodDetailsCardPresentReceipt>
    {
        /// <summary>
        /// The type of account being debited or credited.
        /// One of: <c>checking</c>, <c>credit</c>, <c>prepaid</c>, or <c>unknown</c>.
        /// </summary>
        [JsonProperty("account_type")]
        public string AccountType { get; set; }

        /// <summary>
        /// EMV tag 9F26, cryptogram generated by the integrated circuit chip.
        /// </summary>
        [JsonProperty("application_cryptogram")]
        public string ApplicationCryptogram { get; set; }

        /// <summary>
        /// Mnenomic of the Application Identifier.
        /// </summary>
        [JsonProperty("application_preferred_name")]
        public string ApplicationPreferredName { get; set; }

        /// <summary>
        /// Identifier for this transaction.
        /// </summary>
        [JsonProperty("authorization_code")]
        public string AuthorizationCode { get; set; }

        /// <summary>
        /// EMV tag 8A. A code returned by the card issuer.
        /// </summary>
        [JsonProperty("authorization_response_code")]
        public string AuthorizationResponseCode { get; set; }

        /// <summary>
        /// Describes the method used by the cardholder to verify ownership of the card. One of the
        /// following: <c>approval</c>, <c>failure</c>, <c>none</c>, <c>offline_pin</c>,
        /// <c>offline_pin_and_signature</c>, <c>online_pin</c>, or <c>signature</c>.
        /// </summary>
        [JsonProperty("cardholder_verification_method")]
        public string CardholderVerificationMethod { get; set; }

        /// <summary>
        /// EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
        /// </summary>
        [JsonProperty("dedicated_file_name")]
        public string DedicatedFileName { get; set; }

        /// <summary>
        /// The outcome of a series of EMV functions performed by the card reader.
        /// </summary>
        [JsonProperty("terminal_verification_results")]
        public string TerminalVerificationResults { get; set; }

        /// <summary>
        /// An indication of various EMV functions performed during the transaction.
        /// </summary>
        [JsonProperty("transaction_status_information")]
        public string TransactionStatusInformation { get; set; }
    }
}
